<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script><html>
<div class="scenario">
Tests:
<br>
Select a word via double-click. Delete. Then undo the delete. The space that got
smart deleted should now be selected.
</div>
</div>

<div contenteditable id="root">
foo <span id="word">bar</span> baz
</div>
<div id="log"></div>
<script>
test(function() {
    if (!window.eventSender || !window.internals) {
        assert_unreached('This test requires eventSender and internals.');
        return;
    }
    // Make double-click to select trailing whitespace too.
    internals.settings.setEditingBehavior('win');
    internals.settings.setSelectTrailingWhitespaceEnabled(true);

    // Select "bar "
    var word = document.getElementById('word');
    var x = word.offsetLeft + word.offsetWidth / 2;
    var y = word.offsetTop + word.offsetHeight / 2;
    eventSender.mouseMoveTo(x, y);
    eventSender.mouseDown();
    eventSender.mouseUp();
    eventSender.mouseDown();
    eventSender.mouseUp();

    document.execCommand('Delete');
    document.execCommand('Undo');

    var selection = window.getSelection();
    assert_equals(selection.anchorNode, word.firstChild, 'anchorNode');
    assert_equals(selection.anchorOffset, 0, 'anchorOffset');
    assert_equals(selection.focusNode, word.nextSibling, 'focusNode');
    assert_equals(selection.focusOffset, 1, 'focusOffset');
});
</script>
